#ifndef ABSTRACTSESSION_H
#define ABSTRACTSESSION_H

#pragma once
// #include "packet/message/AbstractMessagePacket.h"

#include <boost/asio.hpp>
#include <data/UserInfo.pb.h>

using boost::asio::ip::tcp;
using tcp     = boost::asio::ip::tcp;  // from <boost/asio/ip/tcp.hpp>
using namespace proto;

class ChatServer;
class AbstractSession {
public:
protected:
    data::UserInfo m_myself = {};

public:
    virtual ~AbstractSession() = 0;

public:
    const data::UserInfo& myself() const;

    virtual void start() = 0;

};

#endif